#include<string.h> требуется только для объявления функции
char *strtor(string1,string2); находит символ в string1
char *string1; строка, содержащая символы
char *string2; множество символов-ограничителей
Описание.
Функция strtok читает строку string1 как множество нуль или более знаков, служащих в качестве ограничителей для символов в string1. Символы в string1 могут отделяться одним или более ограничителем от string2. Символы в string1 разрываются столько раз, сколько вызывается strtok. При первом вызове strtok для заданной строки string1, strtok находит первый символ в string1, пропуская предыдущие ограничители. Указатель возвращается на первый знак. Для того, чтобы прочитать следующий символ из string1, функция strtok вызывается вместе с NULL значением для аргумента string1. Аргумент NULL строки string1 вызывает strtok для поиска следующего знака в предыдущей строке символов. Множество ограничителей может быть различным от вызова к вызову, так как string 2 может принимать любые значения.
Замечание.
String1 можно модифицировать вызовами strtok, так как после вызова strtok в string1 вставляется нулевое значение ('\0').
Возвращаемое значение.
При вызове strtok первый раз, она возвращает указатель на первый символ в string1 . При последующих вызовах в этой же самой строке символов, strtok возвращает указатель на следующий символ в строке. Указатель NULL возвращается, когда нет больше символов. Все символы оканчиваются нулем.
Пример.
#include <string.h>
#include <stdio.h>
char *string = "a string, of , ,tokens";
.
.
.
/* в следующем цикле собираются символы (отделенные пробе-
лами или запятыми) из строки до тех пор, пока в ней ничего не ос-
танется */
token = strtok(string,",");
while (token !=NULL) {
/* вставляет код для обработки символа в цикле */
.
.
.
token = strtok(NULL,",");
/* берет следующий символ */
}
/* возвращаемыми символами являются "a","string", "of",
"tokens". Следующий вызов strtok возвратит NULL и цикл завершает-
ся */